define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
    var Controller = {
        index: function () {
            // 初始化表格参数配置
            Table.api.init({
                extend: {
                    index_url: 'order/recyclebin/index',
                    restore_url:'order/recyclebin/restore',
                    destroy_url:'order/recyclebin/destroy',
                    multi_url: 'order/recyclebin/multi',
                    table: 'order',  //指表名
                }
            });
  
            // 获取到table标签的id
            var table = $("#table")
  
            // 初始化表格
            table.bootstrapTable({
                // 当访问列表发起ajax请求数据
                url: $.fn.bootstrapTable.defaults.extend.index_url,
                // 主键
                pk: 'id',
                // 设置默认排序
                sortName: 'is_urgent',
                sortOrder: 'desc', // 默认排序方法
                columns: [
                    [
                        { checkbox: true },
                        { field: 'id', title: __('id'),operate: false },
                        { field: 'user_id', title: __('用户id'), operate: 'LIKE' },
                        { field: 'order_num', title: __('订单号'), operate: 'LIKE' },
                        { field: 'status_text', title: __('订单状态'), operate: 'LIKE',
                            formatter: Table.api.formatter.flag,
                            formatter: function (value, row, index) {
                                switch (value) {
                                    case '待配送':
                                        return '<span class="label label-primary">' +  __('待配送') + '</span>';
                                    case '审核中':
                                        return '<span class="label label-info">' + __('审核中') + '</span>';
                                    case '已取消':
                                        return '<span class="label label-danger">' + __('已取消') + '</span>';
                                    case '已拒绝':
                                        return '<span class="label label-danger">' + __('已拒绝') + '</span>';
                                    case '配送中':
                                        return '<span class="label label-warning">' + __('配送中') + '</span>';
                                    case '已完成':
                                        return '<span class="label label-success">' + __('已完成') + '</span>';
                                    default:
                                        return '';
                                    }
                                }
                        },
                        { field: 'time', title: __('下单时间'), operate: 'LIKE' },
                        { field: 'ps_date', title: __('配送日期'), operate: 'LIKE' },
                        { field: 'timelist.name', title: __('配送时段'), operate: 'LIKE' },
                        { field: 'contact_name', title: __('联系人'), operate: 'LIKE' },
                        { field: 'contact_phone', title: __('联系人电话'), operate: 'LIKE' },
                        { field: 'ysyq_text', title: __('运输要求'), operate: 'RANGE',
                            searchList: {"0":__('常规运输'),"1":__('温控运输')} },
                        { field: 'uav.name', title: __('分配无人机'), operate: 'LIKE' },
                        { field: 'airline.name', title: __('所属航线'), operate: 'LIKE' },
                        { field: 'start_point.point', title: __('起送点'), operate: 'LIKE' },
                        { field: 'end_point.point', title: __('送达点'), operate: 'LIKE' },
                        { field: 'type.name', title: __('物品类型'), operate: 'LIKE' },
                        { field: 'item_nums', title: __('物品数量'), operate: 'LIKE' },
                        { field: 'unit.name', title: __('物品单位'), operate: 'LIKE' },
                        { field: 'item_weight', title: __('物品重量'), operate: 'LIKE',
                            formatter: function(value) {
                                return value + "kg";
                            }
                         },
                        { field: 'is_urgent', title: __('是否加急'), operate: 'RANGE',
                            searchList: {"0":__('否'),"1":__('是')} ,
                            formatter: Table.api.formatter.flag,
                            formatter: function (value, row, index) {
                                switch (value) {
                                    case 0:
                                        return '<span class="label label-success">' + __('否') + '</span>';
                                    case 1:
                                        return '<span class="label label-danger">' + __('是') + '</span>';
                                    default:
                                        return '';
                                    }
                                }
                        },
                        { field: 'complete_time', title: __('完成时间'), operate: 'LIKE' },
                        { field: 'cancel_time', title: __('取消时间'), operate: 'LIKE'
                         },
                        { field: 'cancel_reason', title: __('取消原因'), operate: 'LIKE'
                        },
                        {
                            field: 'operate',
                            title: __('Operate'),
                            table: table,
                            events: Table.api.events.operate,
                            formatter: Table.api.formatter.operate,
                            buttons: [
                                {
                                  name: 'restore',
                                  title: '恢复',
                                  classname: 'btn btn-success btn-xs btn-ajax',
                                  icon: 'fa fa-circle-o-notch',
                                  url: $.fn.bootstrapTable.defaults.extend.restore_url,
                                  confirm: '是否确认恢复订单？',
                                  extend: 'data-toggle=\'tooltip\'',
                                  refresh: true, //操作完成后是否刷新列表
                                },
                                {
                                    name: 'destroy',
                                    title: '销毁',
                                    classname: 'btn btn-danger btn-xs btn-ajax',
                                    icon: 'fa fa-trash',
                                    url: $.fn.bootstrapTable.defaults.extend.destroy_url,
                                    confirm: '是否确认真实销毁订单？',
                                    extend: 'data-toggle=\'tooltip\'',
                                    refresh: true, //操作完成后是否刷新列表
                                }
                            ]
                        }
                    ]
                ],
                search: false, //是否启用搜索框。
                searchFormVisible: true, //是否始终显示高级搜索表单
            })
  
            $(".btn-restore").click(function (e) {
              //获取table勾选的id值
              let ids = Table.api.selectedids(table)
  
              layer.confirm('是否确认恢复数据', {
                  title: "恢复提醒",
                  btn: ['是', '否']
              }, function (index) {
                  //发送ajax请求
                  Backend.api.ajax(
                      { url: $.fn.bootstrapTable.defaults.extend.restore_url + `?ids=${ids}` },
                      () => {
  
                          //关闭弹框
                          layer.close(index);
  
                          //刷新表格
                          table.bootstrapTable('refresh')
                      }
                  )
              });
          })
  
          $(".btn-destroy").click(function (e) {
              //获取table勾选的id值
              let ids = Table.api.selectedids(table)
  
              layer.confirm('是否确认销毁数据', {
                  title: "销毁提醒",
                  btn: ['是', '否']
              }, function (index) {
                  //发送ajax请求
                  Backend.api.ajax(
                      { url: $.fn.bootstrapTable.defaults.extend.destroy_url + `?ids=${ids}` },
                      () => {
  
                          //关闭弹框
                          layer.close(index);
  
                          //刷新表格
                          table.bootstrapTable('refresh')
                      }
                  )
              });
          })
  
  
            // 为表格绑定事件
            Table.api.bindevent(table);
        },
        api: {
            bindevent: function () {
                Form.api.bindevent($("form[role=form]"));
            }
        }
    }
  
  
    return Controller
  })